package main

import (
  "fmt"
  "os"
)

func main() {
  // 无参数或首个参数是 -h | -help | --help 时，显示全局用法信息
  if len(os.Args) == 1 || os.Args[1] == "-h" || os.Args[1] == "-help" || os.Args[1] == "--help" {
    showUsage()
    os.Exit(ExitSuccess)
  }

  // 解析参数
  cli := parseArgs()
  // 验证子命令是否提供了必要的参数
  cli.Validate()

  switch cli.SubCmd {
  case SubList:      // 获取证书列表
    handleList(cli)
  case SubUpload:    // 上传证书
    handleUpload(cli)
  case SubDownload:  // 下载证书
    handleDownload(cli)
  case SubDelete:    // 删除证书
    handleDelete(cli)
  case SubSet:       // 为服务域名绑定证书
    handleSet(cli)
  case SubCheck:     // 检查服务域名绑定证书的有效性
    handleCheck(cli)
  default:
    fmt.Fprintf(os.Stderr, "unknown subcommand\n") // 应该不会到这里吧
    os.Exit(ExitUsageError)
  }
}
